1. Field of the Invention
This invention relates in general to data signal detection in a data channel or servo system, and more particularly to a digital filter instruction and filter implementing the filter instruction.
2. Description of Related Art
Recently developed data storage devices, such as magnetic disk drive devices (i.e., hard disk drives), have increased storage capacity and increased data access speed. With these advantages, magnetic disk drive devices have become widely used as auxiliary memory devices for computer systems. More generally, developments in pulse communications related to these improvements in disk drive technology have recently provided increased speed and reliability in a wide range of pulse communications systems. The present invention will be described in detail in the context of magnetic disk drive devices, but persons skilled in the pulse communications arts will readily apprehend that this invention provides an improved method for data pulse detection in a wide variety of pulse communication contexts.
The primary features of a magnetic disk drive device that affect storage capacity and access speed are the head, the recording medium, the servo mechanism, the signal processing technique used in the read/write channel, and the like. Among these, signal processing techniques utilizing PRML (Partial Response Maximum Likelihood) detection have greatly contributed to the increased storage capacities and high access speeds seen in modern magnetic disk drive devices.
A read channel circuit in a generic read/write channel circuit of a magnetic disk drive device includes components for initial processing of the analog read signal generated by the read/write head of the device. This processing provides automatic gain control (AGC) amplification, filtering, and equalization, as well as analog-to-digital conversion.
As areal densities increase, inter-symbol interference (ISI), transition-dependent noise and non-linear distortions at high densities and bandwidth limitations at high data rates lead to performance degradation. For example, the level of inter-symbol interference between neighboring recorded bits in magnetic recording channels increases with recording density. The read-write channels that are currently most commonly used are based on the partial response approach. In this approach, the channel impulse and a Viterbi detector are used for detecting the data pulses in the digitized read signal and recovering the bits.
For example, a common problem encountered when electronically reading or transmitting data is that it becomes corrupted by such things as background noise, impulse noise, fades, etc. Usually this data corruption is statistical phenomenon, which causes additive and/or multiplicative transformations to the originally transmitted data. Thus, the original data undergoes changes such as frequency translation, non-linear or harmonic distortion, and time dispersion. In addition, high speed data transmission over channels of limited bandwidth results in a type of distortion commonly referred to as intersymbol interference.
In the field of signal processing, waveform shaping, removal of noise components and extraction of desired signal components are carried out in order to correctly perform desired signal processing. Such processing is carried out through filters. Filters are classified into an FIR (Finite Impulse Response) filters and IIR (Infinite Impulse Response) filters. A FIR filter computes sequential output data using only old sequential input data, the influence of the sequential input data's determined impulse response on sequential output data is limited to finite time. Since the IIR filter feeds old sequential output data back to the input side and treats this data as new sequential input data to compute sequential output data, the influence of the impulse response of the sequential input data on the sequential output data extends to infinite time. The FIR filter and IIR filter are used for the same purpose. Although the IIR filter has higher performance, the design is difficult and the structure is complicated. In this respect, the FIR filter is used more widely.
Digital signal processing devices (DSP) are relatively well known. DSPs generally are distinguished from general purpose microprocessors in that DSPs typically support accelerated arithmetic operations by including a dedicated multiplier and accumulator (MAC) for performing multiplication of digital numbers. The instruction set for a typical DSP device usually includes a MAC instruction for performing multiplication of new operands and addition with a prior accumulated value stored within an accumulator register.
A digital filter may be implemented by programming the DSPs with instructions to implement the filter function. However, a program for carrying out data processing includes instructions other than those for carrying out the filter processing itself. With a digital filter that is formed by a processor basic operational instructions are those for an addition, a subtraction and a multiplication, and hence the number of the instructions is increased. The mathematical algorithm for a typical finite impulse response (FIR) filter may look like the equationYn=h0Xn+h1Xn−1+h2Xn−2+ . . . +hm−1Xn−M−1 where hm are M fixed filter coefficients numbering from 0 to M−1 and Xn are the data samples. The equation Yn may be evaluated by using a software program. However in some applications, it is necessary that the equation be evaluated as fast as possible. One way to do this is to perform the computations using hardware components such as a DSP device programmed to compute the equation Yn.
A digital filter processes digital signals in discrete time and is normally implemented through digital electronic computation using a digital signal processor (DSP). A DSP is a specialized microprocessor designed specifically for digital signal processing generally in real-time. DSPs usually have an instruction set optimized for the task of rapid signal processing such as multiply-accumulate, which computes a product and adds it to an accumulator. An instruction set, or instruction set architecture (ISA), is a specification detailing the commands that a computer's CPU should be able to understand and execute, or the set of all commands implemented by a particular CPU design.
While a digital filter algorithm may be implemented in a digital signal processor (DSP), such implementation often takes longer execution times, requires the sizeable code spaces, and has overhead of shifting the data at address x(n−1) to the next higher address in data memory to make certain that the input sequence x(n) is in the correct location for the next pass through the filter.
It can be seen then that there is a need for a digital filter instruction and filter implementing the filter instruction.